# -*- coding: utf-8 -*-
import json,os
from jinja2 import Markup
from flask import flash, url_for, redirect, request, current_app
from flask_admin.base import expose
from flask_admin.model.template import EndpointLinkRowAction, LinkRowAction
from flask_wtf import FlaskForm
from sqlalchemy import func
from wtforms import SelectMultipleField, ValidationError
from wtforms.validators import DataRequired
from flask_admin.actions import action
from flask_admin.helpers import (get_form_data, validate_form_on_submit,get_redirect_target, flash_errors)
from flask_admin.contrib.sqla import form, filters as sqla_filters, tools
from . import MyModelView
from . import AjaxQueryIndexLike
from adminApp.extensions import db, redis_store


class HdErrorLogView(MyModelView):
    column_filters = ('sas_address', 'model_number', 'manufacturer',
                      'firmware_revision', 'serial', 'guid', 'protocol',
                      'drive_type', 'rota', 'remark')

    column_list = ('sas_address', 'model_number', 'manufacturer', 'firmware_revision', 'serial', 'guid', 'protocol',
                   'drive_type','rota','remark')

    column_labels = {
        'name': '盘符',
        'mountpoint': '挂载',
        'enclosure': '盘柜',
        'slot': '槽位',
        'state': '状态',
        'model_number': '批号',
        'manufacturer': '品牌',
        'firmware_revision': '固件版本',
        'serial': 'SN',
        'serial_no': 'SN',
        'guid': 'GUID',
        'is_root_disk': '系统盘',
        'read_write': '读写错误',
        'remark': '备注',
    }

    column_formatters = dict(
        created=lambda v, c, m, p: m.created.strftime("%Y-%m-%d %H:%M:%S"),
        updated=lambda v, c, m, p: m.updated.strftime("%Y-%m-%d %H:%M:%S") if m.updated else ''
    )

    details_modal = True